type Merge<F extends Record<string, unknown>, S extends Record<string, unknown>> = {
    [P in keyof F | keyof S]: P extends keyof S ? S[P] : F[P]
}